Carriage of ISO-BMFF Event Boxes in an MPEG-2 Transport Stream

ABSTRACT

A method of media streaming implemented by a network device, the method comprising encapsulating a message box into one or more packets in a segment, and sending the segment directly or indirectly to a streaming client.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. Non-provisionalapplication Ser. No. 13/973,759 filed Aug. 22, 2013 by Alexander Giladiand entitled “Carriage of ISO-BMFF Event Boxes in an MPEG-2 TransportStream”, which claims priority to U.S. Provisional Patent ApplicationNo. 61/692,099 filed Aug. 22, 2012 by Alexander Giladi and entitled“Carriage of ISO-BMFF Event Boxes in MPEG-2 TS”, both of which areincorporated herein by reference as if reproduced in their entireties.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

A media content provider or distributor may stream media contents tostreaming clients, which may take the form of various user end devices,such as televisions, notebook computers, and mobile handsets. A mediacontent may comprise a Media Presentation Description (MPD) and aplurality of media segments, which may be carried in a media stream. TheMPD may be an extensible markup language (XML) file or documentdescribing the media content, such as its various representations,Uniform Resource Locator (URL) addresses, and other characteristics. Forexample, the media content may comprise several media components (e.g.audio, video, and text), each of which may have differentcharacteristics that are specified in the MPD. Each media componentcomprises a plurality of media segments containing the parts of actualmedia content, and the segments may be stored collectively in a singlefile or individually in multiple files. Each segment may contain apre-defined byte size (e.g., 1,000 bytes) or an interval of playbacktime (e.g., 2 or 5 seconds) of the media content.

Media content may be delivered from a streaming server to a streamingclient adaptively based on a variety of factors, such as networkconditions, device capability, and user choice. Upon reception of theTS, the streaming client may parse the TS to extract information fromwithin. Adaptive streaming technologies may include various technologiesor standards implemented or being developed, such as Dynamic AdaptiveStreaming over Hypertext Transfer Protocol (HTTP) (DASH), HTTP LiveStreaming (HLS), Adaptive Transport Streaming (ATS), or InternetInformation Services (IIS) Smooth Streaming.

For example, as one type of adaptive streaming, DASH has been defined bythe International Organization for Standardization (ISO) and theInternational Electrotechnical Commission (IEC) in an internationalstandard. The standard, usually identified as ISO/IEC 23009-1, isentitled “Information technology—Dynamic adaptive streaming over HTTP(DASH)—Part 1: Media presentation description and segment formats” andincorporated herein by reference. Recent amendments to the ISO/IEC23009-1 have provided a way of transporting event messages (denoted asemsg) using an ISO-Base Media File Format (BMFF) box. The emsg box maybe specific to ISO-BMFF media segments, and there may be no genericcounterpart to the emsg event in the media segments of a transportstream (TS) defined by the Moving Picture Experts Group-2 (MPEG-2)standard. Consequently, adaptive streaming may not be convenientlydelivered to user devices with MPEG-2 TS support.

SUMMARY

In one embodiment, the disclosure includes a method of media streamingimplemented by a network device, the method comprising encapsulating amessage box into one or more packets in a segment, and sending thesegment directly or indirectly to a streaming client.

In another embodiment, the disclosure includes a network devicecomprising a processor configured to encapsulate a message box in one ormore transport stream (TS) packets, generate a media segment comprisingthe one or more TS packets, and a transmitter coupled to the processorand configured to transmit the media segment.

In yet another embodiment, the disclosure includes an apparatusfunctioning as a streaming client and comprising a receiver configuredto receive a TS comprising a plurality of packets, wherein one or moreof the packets comprises an event message box encapsulated therein, anda processor coupled to the receiver and configured to extract the eventmessage box by parsing the one or more packets.

These and other features will be more clearly understood from thefollowing detailed description taken in conjunction with theaccompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of this disclosure, reference is nowmade to the following brief description, taken in connection with theaccompanying drawings and detailed description, wherein like referencenumerals represent like parts.

FIG. 1 illustrates an embodiment of a media streaming architecture.

FIG. 2 illustrates an embodiment of a media segment comprising packets.

FIG. 3 illustrates a section of exemplary pseudo codes for boxextraction by a streaming client.

FIG. 4 illustrates an embodiment of a media streaming method.

FIG. 5 illustrates an embodiment of a network device.

DETAILED DESCRIPTION

It should be understood at the outset that, although an illustrativeimplementation of one or more embodiments are provided below, thedisclosed systems and/or methods may be implemented using any number oftechniques, whether currently known or in existence. The disclosureshould in no way be limited to the illustrative implementations,drawings, and techniques illustrated below, including the exemplarydesigns and implementations illustrated and described herein, but may bemodified within the scope of the appended claims along with their fullscope of equivalents.

The Society of Cable Telecommunications Engineers (SCTE) has defined astandard that can be used for adding event messaging to a media stream.The standard is referred to as SCTE 35 entitled “Digital ProgramInsertion Cueing Message for Cable.” The standard may use a relativelycomplex and rich structure of messages related to dynamic advertisement(in short as ad) insertion (e.g. marking the boundaries of ad breaks),request to add ads, and schedule change notification (e.g. programinterruption or overrun).

However, several issues may arise from the use of SCTE 35 in a DynamicAdaptive Streaming over Hypertext Transfer Protocol (HTTP) (DASH)client. For example, firstly the DASH client may need to be able toparse SCTE 35 commands, which in addition to SCTE 35 stack, may alsoimply parsing MPEG-2 TS headers and Program Specific Information (PSI).Secondly, SCTE 35 has its own conditional access model that may need tobe supported, which may add complexity to the implementation in a DASHclient. Thus, while SCTE 35 support may be ubiquitous on the server-sidein cable headends, where ad insertion may often be done, SCTE 35 supportmay be virtually non-existent on the client side. Thirdly, extensibilitymay be a potential issue, as SCTE 35 has pre-defined events and may havea more generalized form of events. For example, a SCTE 35-defined eventmay have its length limited to 253 bytes. This size limit may not besufficient to carry a generic emsg box. Sometimes, even a MediaPresentation Description (MPD) Uniform Resource Locator (URL) may exceedthis limit.

It is possible to create a new descriptor in SCTE 35, however the sizelimit may then become 4K (kilo) bytes. This size limit may be enough forsome cases, but it is still possible to have larger boxes, e.g., if partof an MPD is embedded within a box. Another potential problem may bethat adding a new descriptor may need a new implementation. Furthermore,it is desirable to make the event mechanism as similar as possible forboth MPEG-2 TS and ISO-BMFF media segments. A minimal amount ofimplementation on the DASH client side is desired.

The present disclosure teaches an alternative solution in which amessage box, such as an emsg box, may be encapsulated or packetized intoone or more packets. The one or more packets may be contained in a mediasegment. Further, all of the packets carrying a message box may beconfigured to have a fixed packet identifier (PID) value, e.g., a 13-bitvalue of 0x0004 which is reserved by MPEG-2 for adaptive streaming. Thefirst packet encapsulating a message box may comprise a packet headerindicating the start of the encapsulation and a packet payloadcontaining a header of the message box. In addition, the last packet mayhave an adaptation field padded with one or more stuffing bytes. On theother end, to identify and extract an event message box from mediasegments of a received TS, a streaming client may parse the packetheader of one or more packets. The streaming client may skip anadaptation field if necessary. Overall, the embodiments taught hereinmay maximize code reuse for DASH clients.

FIG. 1 illustrates an embodiment of a media streaming architecture 100,which may be implemented to deliver media content from a streamingserver or provider 120 to a streaming client 110. For example, thestreaming architecture 100 may involve a DASH, MPEG-2 TS, or other typeof streaming scheme. The streaming client 110 may be a program orapplication implemented in an operating system of a user device, or itmay be a web client accessed in a web platform. The streaming client 110may be implemented in any user device, such as a mobile phone, notebook,computer, television, etc. If DASH is used, the streaming client 110 isa DASH client, and the streaming server may be an HTTP server or proxy.

The media content stored in the streaming server 120 may be generated orprepared by a streaming media preparation unit 130. The mediapreparation unit 130 may be located in the streaming server 120 orelsewhere (e.g., in a content provider). The streaming server 120 may bepart of a content provider or may be a node in a content distributionnetwork (CDN). For example, the streaming server 120 may be an edge nodein a CDN, and may work as the last hop from a content provider to thestreaming client 110. The media content may be generated by the contentprovider and then transmitted to a CDN node. The media content in thestreaming server 120 may comprise a MPD and a plurality of segments.Note that, if desired, the MPD and the segments may be stored indifferent servers and sent to the streaming client 110 from differentservers. In addition, a streaming server described herein merely servesas an example of a server, it should be understood that thus embodimentsdisclosed herein may also be implemented in any other suitable type ofserver.

The streaming client 110 may send a request to the streaming server 120for media content. In response, the streaming server 120 may first use aMPD delivery function 140 to deliver a MPD to the streaming client 110.The MPD can be delivered using HTTP, email, thumb drive, broadcast, orany other transport. By parsing the MPD, the streaming client 110 maylearn information regarding the media content, such as the timing of theprogram, the availability of media content, the media types,resolutions, minimum and maximum bandwidths, the existence of variousencoded alternatives of multimedia components, the accessibilityfeatures and the required digital right management (DRM), the locationof each media component on the network, and other characteristic of themedia content. Using this information, the streaming client 110 mayselect the appropriate encoded representation or alternative and startstreaming the media content by fetching media segments, e.g., followingthe MPEG-2 TS standard.

The streaming server 120 may use a segment delivery function to delivera media segment to the streaming client 110. A media segment maycomprise one or more TS packets, in which at least one message box(e.g., emsg box) is encapsulated. Note that the streaming client 110 maydownload segments from a plurality of streaming servers, e.g., tomaximize usage of network bandwidth. The streaming client 110 may renderthe downloaded media appropriately so as to provide streaming service toa user of the streaming client 110. Although the streaming client 110may obtain the segments based on locations specified by URLs containedin the MPD, sometimes the segment may be stored in an HTTP cache 150(e.g., in the streaming server 120), so that the streaming client 110may receive them more efficiently.

FIG. 2 illustrates an embodiment of a media segment 200, which may be avalid TS that is communicated from a streaming provider to a streamingclient. If sub-segments are used in the media segment 200, embodimentsdescribed herein may apply to the sub-segment just as they apply to asegment.

The segment 200 may comprise a plurality of TS packets, and one or moreof the packets may be used to encapsulate a message box. That is, onemessage box may be encapsulated using one packet, or using a pluralityof packets (which may or may not be consecutive). The number of packetsused in encapsulating a message box may depend on factors such as thesize of the message box. As messages are transported in unit of boxes,the messages may be referred hereafter also as message boxes. As anexample, packets 210, 220, and 230 shown in FIG. 2 are used in theencapsulation of an event message (emsg) box 240. Although emsg is usedas an exemplary message to demonstrate the principle of boxencapsulation or packetization, a person of ordinary skill in the artwill recognize that the principles disclosed herein will apply to anyother suitable type of event message box or general message box.

A message box (e.g., an ISO-BMFF box) may carry a message, such as anevent message, EventMessageBox (emsg), in a box format (e.g., defined byDASH). The emsg box may be a generic event box, and its payload may beapplication-defined. In the DASH standard, for example, an emsg box mayprovide signaling for generic events related to the media presentationtime. The semantics of the emsg box may follow those for MPD events, andthe emsg box may also provide signaling specific for DASH operations. Amedia segment if encapsulated in ISO BMFF may contain one or morepacketized emsg boxes. If present, any emsg box may be placed before any‘moof’ box which may also be encapsulated if desired. A message box maybe used for various purposes such as notifying a streaming client thatit should refresh an MPD (standardized in an amendment to DASH),providing a patch to apply to the MPD, and/or providing information onupcoming ads (such as SCTE 35,Interactive Advertising Bureau (IAB) VideoAd Serving Template (VAST), and/or IAB Video Multiple Ad Playlist(VMAP)). Further details on example embodiments of event message box canbe found in Section 5.10.3.3 of the amendment to the DASH standard. Theamendment document is identified as ISO/IEC 23009-1:2012/Amd.1:2013(E),entitled “Information technology—Dynamic adaptive streaming over HTTP(DASH)—Part 1: Media presentation description and segment formats,AMENDMENT 1,” and incorporated herein by reference.

Each of the TS packets 210, 220, and 230 may have a fixed length, e.g.,of 188 bytes. The 188-byte length is highly compatible with the lengthAsynchronous Transfer Mode (ATM) cells, and commonly used in MPEG-2 TSsegments because of its applicability to efficient and robusterror-correction coding. The packet 210, as an exemplary packet, maycomprise a packet header 211. The packet header may comprise variousfields including a synchronization field 212, a transport errorindicator 213, a payload-unit start indicator 214 (denoted as payloadunit start indicator), a transport priority field 215, a PID 216, atransport-scrambling control field 217, an adaptation field control flag(denoted as adaptation_field_control) 218, and a continuity index 219.The packet header and its fields may be configured to have any suitablesize. In an embodiment, the packet header 211 has a fixed length of 4bytes (i.e., 32 bits), with an 8-bit synchronization field 212, an 1-bittransport error indicator 213, an 1-bit payload-unit start indicator214, an 1-bit transport priority field 215, a 13-bit PID 216, a 2-bittransport-scrambling control field 217, a 2-bit adaptation field controlflag 218, and a 4-bit continuity index 219.

The adaptation field control flag in a packet header may indicate theexistence of an adaptation field, or a payload, or both following theheader. For example, adaptation_field_control=‘01’ may indicate that apayload follows the header, adaptation_field_control=‘10’ may indicatethat an adaptation field follows the header, andadaptation_field_control=‘11’ may indicate that an adaptation field anda payload both follow the header.

The PID in a packet header may identify different types of packets,e.g., about 8000 types may be identified using a 13-bit field. As TSpackets with a PID value of 0x0004 (0x indicates a hexadecimal value)may be especially reserved for adaptive streaming messages, according toan embodiment, each packet encapsulating at least part of an emsg boxmay be given a PID of 0x0004. In addition, the payload-unit startindicator in the packet header may indicate the start of a payload unit,e.g., a single file-level message box. The transport-scrambling controlfield may indicate whether the payload section is scrambled, and acontinuity index may be used for detecting packet discontinuity.

A media segment may be a MPEG-2 TS, and may contain one or more eventmessage (‘emsg’) boxes encapsulated into TS packets. In an embodiment,one or more TS packets carrying an emsg box 240 may use a reserved orfixed PID value of 0x0004. A TS packet carrying the start (box header)of the emsg box may have the payload_unit_start_indicator field turnedon (e.g., set to ‘1’). The packet payload may start from the beginningof the emsg box 240. A complete box type field 242, denoted as Box.typemay need to be present in this first packet, and the payload size may beat least 4 bytes. The box type field 242 may be part of the header ofthe emsg box 240, and may be used to indicate that the box is an emsgbox. Note that neither sections nor packetized elementary stream (PES)packets may be used in encapsulating or carrying message boxes.

The packet payload may start from the beginning of a message box (boxheader), or from a fixed N-byte header followed by a box header. TheN-byte header may provide additional information (e.g., a checksum orcryptographic hash to verify box integrity) or indicate availability ofsuch information following the end of the box. Both headers may bepresent in the first packet, thus the size of the adaptation field maybe 182-N—8 bytes at most. The continuation of box data may occupyfollowing TS packets with the same PID. The packets comprising themessage box encapsulated therein may be detected or identified, e.g., bya streaming client, as the packets contain the same PID. The last packetcarrying the end of the box may be padded using adaptation fieldstuffing bytes. The stuffing bytes may have random or pre-set values(e.g., a stuffing byte can be set as a fixed 8-bit value equal to 255).Stuffing bytes may be inserted by an encoder or any in-network device,such as multiplexer, packager, etc, and then discarded by a decoder. Anadditional “footer” may be placed after the end of the box. For anypacket with a PID value of 0x0004, the value of thetransport_scrambling_control field may be set to ‘00’ to indicate thatno scrambling is used on the payload section.

Note that a segment may contain one or more complete message boxes(e.g., the entirety of the emsg box 240). A streaming client may detectwhether a message box is complete by inspecting the header of the box,which comprises the size of the box. Further, if the field of@bitstreamSwitching is set, and subsegments are used, a subsegment maycontain one or more complete emsg boxes. Note that a bitstream switchingsegment, if present, may contain essential data to switch to arepresentation the segment is assigned to. For example, the field of@bitstreamSwitching being set to “true” in the bitstream switchingsegment may indicate that the segment concatenation is a valid TS (e.g.,an MPEG-2 TS).

The solution of carrying event boxes in MEPG-2 TS packets as taught maybe a generic solution. Since there is no limit on box size imposed byMPEG-2 Systems standard, any box length can be used, while the box sizemay be given in a box header. Moreover, the encapsulation of an emsg boxmay be extended, with trivial complexity, for any other box for whichdirect MPEG-2 TS transport is deemed necessary. Moreover, it should beunderstood that any ISO-BMFF box or other type(s) of message box may beused with the embodiments described herein. Moreover, any data using abox syntax can be accommodated.

Another benefit of the embodiments described herein may be thecommonality with ISO-BMFF, as it is possible to use a derivationprocedure for the emsg box, and then embed the emsg into any segmentformat. Moreover, this disclosure may allow the use of TS-basedevent-only adaptation set(s) in the same period as ISO-BMFF adaptationset(s) (denoted as AdaptationSet) elements. For example, this disclosuremay allow passing ad-related metadata beyond SCTE 35, and allowindication of MPD expiration for TS-based clients. Beyond DASH, theembodiments disclosed herein may be used in any system in which media isencapsulated into MPEG-2 TS packets.

A streaming provider or server may send, directly or indirectly to astreaming client, a TS comprising media segments. In one media segment,one or more packets may contain at least one message box encapsulatedtherein. On the streaming client's end, the TS may be received, and themessage boxes may be extracted from the media segment via parsing. FIG.3 illustrates a section of exemplary pseudo codes for box extraction bythe streaming client. The pseudo codes in FIG. 3 may enable one ofordinary skill in the art to drop packets prior to the start of amessage box as well as stuffing bytes, and thereby generate a completemessage box. The streaming client may detect whether a complete messagebox is encapsulated in TS packets by parsing the PID of the packets. Ifone or more packets have the reserved PID value of 0x0004, it mayindicate that at least one message box is encapsulated. Thecomputational complexity involved in detecting packet headers may betrivial, unless the media segment is fully encrypted.

Also, note that, to perform event extraction, only complete boxes may bepresent within a segment. A logic and (AND) operation is used in thepseudo codes to find the packetized emsg box. Note that since theadaptation field control flag may be set to different values (e.g.,‘01’, ‘10’, or ‘11’), the streaming client may skip the adaptation fieldwhen necessary.

Timing data may be needed in order to simplify the calculation of theevent presentation time on the client side. In an embodiment, a fieldcontained in a box header and denoted as emsg.presentation_time_deltamay be relative to the earliest presentation time of the segment. Whilea DASH client may know the earliest presentation time of a segment,MPEG-2 TS may lack this information, thus having an optional pts_offsetfield in the header may assist in processing the event within a userequipment that is unaware of the emsg.presentation_time_delta.

FIG. 4 illustrates an embodiment of a media streaming method 400, whichmay be implemented by a streaming server (e.g., the streaming server120). The method 400 starts in step 410, in which the streaming servermay encapsulate a message box into one or more packets. In anembodiment, the message box is an emsg box specific for DASH, and thepackets are specific for MPEG-2. As a result of encapsulation, themessage (e.g., event message) box is packetized and contained in one ormore packets. In step 420, the method 400 may generate a segment (e.g.,a media segment) comprising the one or more packets. In step 430, themethod may send the segment, directly or indirectly to a streamingclient, wherein the segment comprises the one or more packets in whichthe message box is encapsulated.

It should be understood that variations of the method 400 exist and isencompassed by principles disclosed herein. For example, if thestreaming server is a CDN edge node that receives already-preparedtransport streams, the encapsulation of the message box and thegeneration of the segment may be done by a different device, e.g., by acontent provider during content preparation. In this case, only aportion of the steps in the method 400 is implemented in the streamingserver. For another example, other steps, such as transcoding,encryption, decryption of the segment may be incorporated into themethod 400, wherever appropriate, to facilitate the media streamingservice.

The schemes described above may be implemented on a network component ornode, such as a network node with sufficient processing power, memoryresources, and network throughput capability to handle the necessaryworkload placed upon it. FIG. 5 illustrates an embodiment of a networknode or device 500 suitable for implementing one or more embodiments ofthe methods/schemes disclosed herein, such as the media streaming method400. Further, the network device 500 may be configured to implement anyof the apparatuses described herein, such as the streaming client 110 orthe streaming server 120.

The network device 500 includes a processor 502 that is in communicationwith memory devices including secondary storage 504, read only memory(ROM) 506, random access memory (RAM) 508, input/output (I/O) devices510, and transmitter/receiver 512. Although illustrated as a singleprocessor, the processor 502 is not so limited and may comprise multipleprocessors. The processor 502 may be implemented as one or more centralprocessor unit (CPU) chips, cores (e.g., a multi-core processor),field-programmable gate arrays (FPGAs), application specific integratedcircuits (ASICs), and/or digital signal processors (DSPs), and/or may bepart of one or more ASICs. The processor 502 may be configured toimplement any of the schemes described herein, including the mediastreaming method 400. The processor 502 may be implemented usinghardware or a combination of hardware and software.

The secondary storage 504 is typically comprised of one or more diskdrives or tape drives and is used for non-volatile storage of data andas an over-flow data storage device if the RAM 508 is not large enoughto hold all working data. The secondary storage 504 may be used to storeprograms that are loaded into the RAM 508 when such programs areselected for execution. The ROM 506 is used to store instructions andperhaps data that are read during program execution. The ROM 506 is anon-volatile memory device that typically has a small memory capacityrelative to the larger memory capacity of the secondary storage 504. TheRAM 508 is used to store volatile data and perhaps to storeinstructions. Access to both the ROM 506 and the RAM 508 is typicallyfaster than to the secondary storage 504.

The transmitter/receiver 512 may serve as an output and/or input deviceof the network device 500. For example, if the transmitter/receiver 512is acting as a transmitter, it may transmit data out of the networkdevice 500. If the transmitter/receiver 512 is acting as a receiver, itmay receive data into the network device 500. The transmitter/receiver512 may take the form of modems, modem banks, Ethernet cards, universalserial bus (USB) interface cards, serial interfaces, token ring cards,fiber distributed data interface (FDDI) cards, wireless local areanetwork (WLAN) cards, radio transceiver cards such as code divisionmultiple access (CDMA), global system for mobile communications (GSM),long-term evolution (LTE), worldwide interoperability for microwaveaccess (WiMAX), and/or other air interface protocol radio transceivercards, and other well-known network devices. The transmitter/receiver512 may enable the processor 502 to communicate with an Internet or oneor more intranets. The I/O devices 510 may include a video monitor,liquid crystal display (LCD), touch screen display, or other type ofvideo display for displaying video, and may also include a videorecording device for capturing video. I/O devices 510 may also includeone or more keyboards, mice, or track balls, or other well-known inputdevices.

It is understood that by programming and/or loading executableinstructions onto the network device 500, at least one of the processor502, the secondary storage 504, the RAM 508, and the ROM 506 arechanged, transforming the network device 500 in part into a particularmachine or apparatus (e.g., a streaming server or client having thenovel functionality taught by the present disclosure). The executableinstructions may be stored on the secondary storage 504, the ROM 506,and/or the RAM 508 and loaded into the processor 502 for execution. Itis fundamental to the electrical engineering and software engineeringarts that functionality that can be implemented by loading executablesoftware into a computer can be converted to a hardware implementationby well-known design rules. Decisions between implementing a concept insoftware versus hardware typically hinge on considerations of stabilityof the design and numbers of units to be produced rather than any issuesinvolved in translating from the software domain to the hardware domain.Generally, a design that is still subject to frequent change may bepreferred to be implemented in software, because re-spinning a hardwareimplementation is more expensive than re-spinning a software design.Generally, a design that is stable that will be produced in large volumemay be preferred to be implemented in hardware, for example in anapplication specific integrated circuit (ASIC), because for largeproduction runs the hardware implementation may be less expensive thanthe software implementation. Often a design may be developed and testedin a software form and later transformed, by well-known design rules, toan equivalent hardware implementation in an application specificintegrated circuit that hardwires the instructions of the software. Inthe same manner as a machine controlled by a new ASIC is a particularmachine or apparatus, likewise a computer that has been programmedand/or loaded with executable instructions may be viewed as a particularmachine or apparatus.

At least one embodiment is disclosed and variations, combinations,and/or modifications of the embodiment(s) and/or features of theembodiment(s) made by a person having ordinary skill in the art arewithin the scope of the disclosure. Alternative embodiments that resultfrom combining, integrating, and/or omitting features of theembodiment(s) are also within the scope of the disclosure. Wherenumerical ranges or limitations are expressly stated, such expressranges or limitations may be understood to include iterative ranges orlimitations of like magnitude falling within the expressly stated rangesor limitations (e.g., from about 1 to about 10 includes, 2, 3, 4, etc.;greater than 0.10 includes 0.11, 0.12, 0.13, etc.). For example,whenever a numerical range with a lower limit, R₁, and an upper limit,R_(u), is disclosed, any number falling within the range is specificallydisclosed. In particular, the following numbers within the range arespecifically disclosed: R=R₁+k*(R_(u)−R₁), wherein k is a variableranging from 1 percent to 100 percent with a 1 percent increment, i.e.,k is 1 percent, 2 percent, 3 percent, 4 percent, 5 percent, . . . , 50percent, 51 percent, 52 percent, . . . , 95 percent, 96 percent, 97percent, 98 percent, 99 percent, or 100 percent. Moreover, any numericalrange defined by two R numbers as defined in the above is alsospecifically disclosed. The use of the term “about” means +/−10% of thesubsequent number, unless otherwise stated. Use of the term “optionally”with respect to any element of a claim means that the element isrequired, or alternatively, the element is not required, bothalternatives being within the scope of the claim. Use of broader termssuch as comprises, includes, and having may be understood to providesupport for narrower terms such as consisting of, consisting essentiallyof, and comprised substantially of. Accordingly, the scope of protectionis not limited by the description set out above but is defined by theclaims that follow, that scope including all equivalents of the subjectmatter of the claims. Each and every claim is incorporated as furtherdisclosure into the specification and the claims are embodiment(s) ofthe present disclosure. The discussion of a reference in the disclosureis not an admission that it is prior art, especially any reference thathas a publication date after the priority date of this application. Thedisclosure of all patents, patent applications, and publications citedin the disclosure are hereby incorporated by reference, to the extentthat they provide exemplary, procedural, or other details supplementaryto the disclosure.

While several embodiments have been provided in the present disclosure,it may be understood that the disclosed systems and methods might beembodied in many other specific forms without departing from the spiritor scope of the present disclosure. The present examples are to beconsidered as illustrative and not restrictive, and the intention is notto be limited to the details given herein. For example, the variouselements or components may be combined or integrated in another systemor certain features may be omitted, or not implemented.

In addition, techniques, systems, subsystems, and methods described andillustrated in the various embodiments as discrete or separate may becombined or integrated with other systems, modules, techniques, ormethods without departing from the scope of the present disclosure.Other items shown or discussed as coupled or directly coupled orcommunicating with each other may be indirectly coupled or communicatingthrough some interface, device, or intermediate component whetherelectrically, mechanically, or otherwise. Other examples of changes,substitutions, and alterations are ascertainable by one skilled in theart and may be made without departing from the spirit and scopedisclosed herein.

What claimed is:
 1. A method of media streaming implemented by a networkdevice, the method comprising: encapsulating a first portion of amessage in a box format into a first transport stream (TS) packet in asegment, wherein the first TS packet comprises a packet identifier (PID)value for indicating carriage of information based on the message;encapsulating a second portion of the message in the box format into asecond TS packet in the segment, wherein the second TS packet comprisesthe PID value; and sending the segment comprising the first TS packetand the second TS packet to a client.
 2. The method of claim 1, whereinthe message is an event message.
 3. The method of claim 1, wherein thePID value is 13-bit reserved value of 0x0004.
 4. The method of claim 1,wherein the first TS packet comprises a packet header and a packetpayload, wherein the packet header comprises information indicating thatthe message in the box format starts in the first TS packet.
 5. Anetwork device, comprising: a processor; and a computer readable storagemedium storing programming for execution by the processor, theprogramming including instructions to: encapsulate a first portion of amessage in a box format into a first transport stream (TS) packet in asegment, wherein the first TS packet comprises a packet identifier (PID)value for indicating carriage based on the message; encapsulate a secondportion of the message in the box format into a second TS packet in thesegment, wherein the second TS packet comprises the PID value; and sendthe segment comprising the first TS packet and the second TS packet to aclient.
 6. The network device of claim 5, wherein the message is anevent message.
 7. The network device of claim 5, wherein the PID valueis 13-bit reserved value of 0x0004.
 8. The network device of claim 5,wherein the first TS packet comprises a packet header and a packetpayload, wherein the packet header comprises information indicating thatthe message in the box format starts in the first TS packet.
 9. A methodof media streaming implemented by a device, the method comprising:receiving a segment comprising a first transport stream (TS) packet anda second TS packet, wherein the first TS packet comprises a firstportion of a message in a box format and the second TS packet comprisesa second portion of the message in the box format, wherein each of thefirst TS packet and the second TS packet comprises a same packetidentifier (PID) value for indicating carriage of information based onthe message; and parsing the first TS packet and the second TS packetcomprising the same PID value to obtain the first portion of the messagein the box format and the second portion of the message in the boxformat.
 10. The method of claim 9, wherein the message is an eventmessage.
 11. The method of claim 9, wherein the PID value is 13-bitreserved value of 0x0004.
 12. The method of claim 9, wherein the firstTS packet comprises a packet header and a packet payload, wherein thepacket header comprises information indicating that the message in thebox format starts in the first TS packet.
 13. A network device,comprising: a processor; and a computer readable storage medium storingprogramming for execution by the processor, the programming includinginstructions to: receive a segment comprising a first transport stream(TS) packet and a second TS packet, wherein the first TS packetcomprises a first portion of a message in a box format and the second TSpacket comprises a second portion of the message in the box format,wherein each of the first TS packet and the second TS packet comprises asame packet identifier (PID) value for indicating carriage ofinformation based on the message; and parsing the first TS packet andthe second TS packet comprising the same PID value to obtain the firstportion of the message in the box format and the second portion of themessage in the box format.
 14. The network device of claim 10, whereinthe message is an event message.
 15. The network device of claim 10,wherein the PID value is 13-bit reserved value of 0x0004.
 16. Thenetwork device of claim 10, wherein the first TS packet comprises apacket header and a packet payload, wherein the packet header comprisesinformation indicating that the message in the box format starts in thefirst TS packet.
 17. A method of media streaming implemented by adevice, the method comprising: receiving a transport stream (TS)comprising a plurality of packets, wherein each of one or more of thepackets comprises a same packet identifier (PID) indicating that amessage box is encapsulated in the one or more of the packets; andparsing the one or more of the packets having the same PID to obtain themessage box.
 18. The method of claim 17, wherein the message box is anevent message box.
 19. The method of claim 17, wherein the PID is afixed value of 0x0004.
 20. A device, comprising: a processor; and acomputer readable storage medium storing programming for execution bythe processor, the programming including instructions to: receive atransport stream (TS) comprising a plurality of packets, wherein each ofone or more of the packets comprises a same packet identifier (PID)indicating that a message box is encapsulated in the one or more of thepackets; and parse the one or more of the packets having the same PID toobtain the message box.
 21. The device of claim 20, wherein the messagebox is an event message box.
 22. The device of claim 20, wherein the PIDis a fixed value of 0x0004.